home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-07-11 | 18.8 KB | 1,370 lines |
- * rainbow.s
- * 虹 / 最高速 = 2
- * by Mitsuky
-
- .include DOSCALL.MAC
-
- SPEED_MAX equ 2
-
- .offset 8 * 引き数
- _source_ptr: .ds.l 1
- _dest_ptr: .ds.l 1
- _speed: .ds.l 1
- _vdisp: .ds.l 1
-
-
- .offset 0
- gvram_ptr: .ds.l 1
- counter: .ds.w 1
- work_size:
-
-
- gpos .macro pos_x,pos_y
- .dc.w (pos_y*1024)+(pos_x*2)
- .endm
-
- dpos .macro pos_x,pos_y,wait
- .dc.l wait<<24|pos_y<<4<<10|pos_x<<4<<1
- .endm
-
-
- .text
- .even
-
- .dc.b 'WL10',$0d,$0a
- .dc.b '虹 / 最高速 = 2',$0d,$0a
- .dc.b ' by Mitsuky',$0d,$0a
- .dc.b $1a
- .even
-
- rainbow:
- link a6,#0
- movem.l d1-d7/a0-a5,-(sp)
-
- suba.l a5,a5
-
- move.l _speed(a6),d0
- bmi rainbow_ask_speed
- cmpi.l #SPEED_MAX,d0
- bhi rainbow_err
-
- tst.l _vdisp(a6)
- bmi rainbow_ask_vdisp
-
-
- move.l #work_size*(512/16)*(512/16),-(sp)
- DOS _MALLOC
- addq.w #4,sp
- tst.l d0
- bmi rainbow_err
- movea.l d0,a5 * a5.l = ワークのアドレス
-
-
- movea.l _source_ptr(a6),a2 * a2.l = 転送元アドレス
- movea.l _dest_ptr(a6),a3 * a3.l = 転送先アドレス
- lea.l table2(pc),a1 * a1.l = table2 のポインタ
-
- * ワークの初期化
- movea.l a5,a0
- move.w #(512/16)*(512/16)-1,d0
- moveq.l #-1,d1
- @@: move.w d1,counter(a0)
- lea.l work_size(a0),a0
- dbra d0,@b
-
-
- lea.l appear(pc),a0
- clr.w (a0) * 出現カウンター
- rainbow_loop:
- moveq.l #SPEED_MAX,d1
- sub.l _speed(a6),d1
- @@: move.l _vdisp(a6),a0
- jsr (a0)
- dbra d1,@b
-
- sf.b d5
-
-
- * ワークを出現させる
- 1:
- lea.l appear(pc),a0
- subq.w #1,(a0)
- bpl 5f
- move.l (a1)+,d0
- bmi 4f
-
- movea.l a5,a4 * a4.l = ワークのアドレス
- 2: tst.w counter(a4)
- bmi 3f
- lea.l work_size(a4),a4
- bra 2b
- 3: move.l d0,d1
- andi.l #$00ffffff,d1
- move.l d1,gvram_ptr(a4)
- clr.w counter(a4)
- rol.l #8,d0
- andi.w #$00ff,d0
- movea.l a5,a4
- lea.l appear(pc),a0
- move.w d0,(a0)
- bra 1b
- 4:
- lea.l appear(pc),a0
- move.w #32767,(a0)
- 5:
-
- movem.l a1,-(sp) **
-
-
- move.w #(512/16)*(512/16)-1,d7 * d7.w = ループ回数
- movea.l a5,a4
- rainbow_loop_2:
- tst.w counter(a4)
- bmi rainbow_loop_2_end
-
-
- st.b d5
-
- moveq.l #4-1,d6
- @@:
- movea.w counter(a4),a1
- move.w a1,d0
- addq.w #1,d0
- move.w d0,counter(a4)
- add.w a1,a1
- movea.w table(pc,a1.w),a1
- adda.l gvram_ptr(a4),a1
-
- movea.l a2,a0
- adda.l a1,a0
- move.w (a0),d1
- move.w 8*2(a0),d2
- move.w 8*512*2(a0),d3
- move.w 8*512*2+8*2(a0),d4
-
- movea.l a3,a0
- adda.l a1,a0
- move.w d1,(a0)
- move.w d2,8*2(a0)
- move.w d3,8*512*2(a0)
- move.w d4,8*512*2+8*2(a0)
-
- dbra d6,@b
-
-
- move.w counter(a4),d0
- cmpi.w #64,d0
- bcs @f
- move.w #-1,counter(a4)
- @@:
-
- rainbow_loop_2_end:
- lea.l work_size(a4),a4
- dbra d7,rainbow_loop_2
-
- movem.l (sp)+,a1 **
-
- tst.b d5
- bne rainbow_loop
-
- moveq.l #0,d0
- rainbow_rts:
- move.l a5,d1
- beq @f
- movem.l d0,-(sp)
- pea.l (a5)
- DOS _MFREE
- addq.w #4,sp
- movem.l (sp)+,d0
- @@:
- movem.l (sp)+,d1-d7/a0-a5
- unlk a6
- rts
-
-
- *********************************************************
- table:
- gpos 0,0
- gpos 4,4
- gpos 2,6
- gpos 5,1
- gpos 7,3
- gpos 2,2
- gpos 6,6
- gpos 3,7
- gpos 7,1
- gpos 0,4
- gpos 7,7
- gpos 4,2
- gpos 1,5
- gpos 6,0
- gpos 3,3
- gpos 5,7
- gpos 6,2
- gpos 2,0
- gpos 3,5
- gpos 6,4
- gpos 3,1
- gpos 7,5
- gpos 1,3
- gpos 4,6
- gpos 5,3
- gpos 4,0
- gpos 0,2
- gpos 1,7
- gpos 5,5
- gpos 1,1
- gpos 0,6
- gpos 2,4
-
-
- gpos 1,0
- gpos 5,4
- gpos 3,6
- gpos 6,1
- gpos 0,3
- gpos 3,2
- gpos 7,6
- gpos 4,7
- gpos 0,1
- gpos 1,4
- gpos 0,7
- gpos 5,2
- gpos 2,5
- gpos 7,0
- gpos 4,3
- gpos 6,7
- gpos 7,2
- gpos 3,0
- gpos 4,5
- gpos 7,4
- gpos 4,1
- gpos 0,5
- gpos 2,3
- gpos 5,6
- gpos 6,3
- gpos 5,0
- gpos 1,2
- gpos 2,7
- gpos 6,5
- gpos 2,1
- gpos 1,6
- gpos 3,4
-
-
- * 0 1 2 3 4 5 6 7
- * 00..17..25..13.. 0
- * ..29..20..03..08 1
- * 26..05..11..16.. 2
- * ..22..14..24..04 3
- * 09..31..01..19.. 4
- * ..12..18..28..21 5
- * 30..02..23..06.. 6
- * ..27..07..15..10 7
-
- * 0 1 2 3 4 5 6 7
- * ..00..17..25..13 0
- * 08..29..20..03.. 1
- * ..26..05..11..16 2
- * 04..22..14..24.. 3
- * ..09..31..01..19 4
- * 21..12..18..28.. 5
- * ..30..02..23..06 6
- * 10..27..07..15.. 7
-
- **** ****
- .even
- rainbow_err:
- moveq.l #-1,d0
- bra rainbow_rts
-
-
- **** ****
- rainbow_ask_speed:
- moveq.l #SPEED_MAX,d0
- bra rainbow_rts
-
-
- **** ****
- rainbow_ask_vdisp:
- move.l _speed(a6),d0
- lea.l ask_vdisp_table(pc),a0
- add.w d0,d0
- move.w (a0,d0.w),d0
- bra rainbow_rts
-
- ask_vdisp_table:
- .dc.w 351,234,117
-
-
- table2:
- dpos 14,31,0
- dpos 15,30,0
- dpos 16,30,0
- dpos 17,31,4
-
- dpos 12,31,0
- dpos 12,30,0
- dpos 13,29,0
- dpos 14,28,0
- dpos 15,28,0
- dpos 16,28,0
- dpos 17,28,0
- dpos 18,29,0
- dpos 19,30,0
- dpos 19,31,3
-
- dpos 10,31,0
- dpos 10,30,0
- dpos 10,29,0
- dpos 11,28,0
- dpos 12,27,0
- dpos 13,26,0
- dpos 14,26,0
- dpos 15,26,0
- dpos 16,26,0
- dpos 17,26,0
- dpos 18,26,0
- dpos 19,27,0
- dpos 20,28,0
- dpos 21,29,0
- dpos 21,30,0
- dpos 21,31,3
-
- dpos 8,31,0
- dpos 8,30,0
- dpos 8,29,0
- dpos 9,28,0
- dpos 9,27,0
- dpos 10,26,0
- dpos 11,25,0
- dpos 12,25,0
- dpos 13,24,0
- dpos 14,24,0
- dpos 15,24,0
- dpos 16,24,0
- dpos 17,24,0
- dpos 18,24,0
- dpos 19,25,0
- dpos 20,25,0
- dpos 21,26,0
- dpos 22,27,0
- dpos 22,28,0
- dpos 23,29,0
- dpos 23,30,0
- dpos 23,31,3
-
- dpos 6,31,0
- dpos 6,30,0
- dpos 6,29,0
- dpos 7,28,0
- dpos 7,27,0
- dpos 8,26,0
- dpos 8,25,0
- dpos 9,24,0
- dpos 10,24,0
- dpos 11,23,0
- dpos 12,23,0
- dpos 13,22,0
- dpos 14,22,0
- dpos 15,22,0
- dpos 16,22,0
- dpos 17,22,0
- dpos 18,22,0
- dpos 19,23,0
- dpos 20,23,0
- dpos 21,24,0
- dpos 22,24,0
- dpos 23,25,0
- dpos 23,26,0
- dpos 24,27,0
- dpos 24,28,0
- dpos 25,29,0
- dpos 25,30,0
- dpos 25,31,3
-
- dpos 15,31,0
- dpos 16,31,3
-
- dpos 4,31,0
- dpos 4,30,0
- dpos 4,29,0
- dpos 4,28,0
- dpos 5,27,0
- dpos 5,26,0
- dpos 6,25,0
- dpos 6,24,0
- dpos 7,23,0
- dpos 8,22,0
- dpos 9,21,0
- dpos 10,21,0
- dpos 11,21,0
- dpos 12,20,0
- dpos 13,20,0
- dpos 14,20,0
- dpos 15,20,0
- dpos 16,20,0
- dpos 17,20,0
- dpos 18,20,0
- dpos 19,20,0
- dpos 20,21,0
- dpos 21,21,0
- dpos 22,21,0
- dpos 23,22,0
- dpos 24,23,0
- dpos 25,24,0
- dpos 25,25,0
- dpos 26,26,0
- dpos 26,27,0
- dpos 27,28,0
- dpos 27,29,0
- dpos 27,30,0
- dpos 27,31,3
-
- dpos 13,31,0
- dpos 13,30,0
- dpos 14,30,0
- dpos 14,29,0
- dpos 15,29,0
- dpos 16,29,0
- dpos 17,29,0
- dpos 17,30,0
- dpos 18,30,0
- dpos 18,31,3
-
- dpos 2,31,0
- dpos 2,30,0
- dpos 2,29,0
- dpos 2,28,0
- dpos 3,27,0
- dpos 3,26,0
- dpos 4,25,0
- dpos 4,24,0
- dpos 5,23,0
- dpos 5,22,0
- dpos 6,21,0
- dpos 7,20,0
- dpos 8,20,0
- dpos 9,19,0
- dpos 10,19,0
- dpos 11,19,0
- dpos 12,18,0
- dpos 13,18,0
- dpos 14,18,0
- dpos 15,18,0
- dpos 16,18,0
- dpos 17,18,0
- dpos 18,18,0
- dpos 19,18,0
- dpos 20,19,0
- dpos 21,19,0
- dpos 22,19,0
- dpos 23,20,0
- dpos 24,20,0
- dpos 25,21,0
- dpos 26,22,0
- dpos 26,23,0
- dpos 27,24,0
- dpos 27,25,0
- dpos 28,26,0
- dpos 28,27,0
- dpos 29,28,0
- dpos 29,29,0
- dpos 29,30,0
- dpos 29,31,3
-
- dpos 11,31,0
- dpos 11,30,0
- dpos 11,29,0
- dpos 12,29,0
- dpos 12,28,0
- dpos 13,28,0
- dpos 13,27,0
- dpos 14,27,0
- dpos 15,27,0
- dpos 16,27,0
- dpos 17,27,0
- dpos 18,27,0
- dpos 18,28,0
- dpos 19,28,0
- dpos 19,29,0
- dpos 20,29,0
- dpos 20,30,0
- dpos 20,31,3
-
- dpos 0,31,0
- dpos 0,30,0
- dpos 0,29,0
- dpos 0,28,0
- dpos 0,27,0
- dpos 1,26,0
- dpos 1,25,0
- dpos 1,24,0
- dpos 2,23,0
- dpos 2,22,0
- dpos 3,21,0
- dpos 4,20,0
- dpos 5,19,0
- dpos 6,18,0
- dpos 7,18,0
- dpos 8,17,0
- dpos 9,17,0
- dpos 10,17,0
- dpos 11,16,0
- dpos 12,16,0
- dpos 13,16,0
- dpos 14,16,0
- dpos 15,16,0
- dpos 16,16,0
- dpos 17,16,0
- dpos 18,16,0
- dpos 19,16,0
- dpos 20,16,0
- dpos 21,17,0
- dpos 22,17,0
- dpos 23,17,0
- dpos 24,18,0
- dpos 25,18,0
- dpos 26,19,0
- dpos 27,20,0
- dpos 28,21,0
- dpos 29,22,0
- dpos 29,23,0
- dpos 30,24,0
- dpos 30,25,0
- dpos 30,26,0
- dpos 31,27,0
- dpos 31,28,0
- dpos 31,29,0
- dpos 31,30,0
- dpos 31,31,3
-
- dpos 9,31,0
- dpos 9,30,0
- dpos 9,29,0
- dpos 10,28,0
- dpos 10,27,0
- dpos 11,27,0
- dpos 11,26,0
- dpos 12,26,0
- dpos 13,25,0
- dpos 14,25,0
- dpos 15,25,0
- dpos 16,25,0
- dpos 17,25,0
- dpos 18,25,0
- dpos 19,26,0
- dpos 20,26,0
- dpos 20,27,0
- dpos 21,27,0
- dpos 21,28,0
- dpos 22,29,0
- dpos 22,30,0
- dpos 22,31,3
-
- dpos 0,22,0
- dpos 0,21,0
- dpos 1,20,0
- dpos 2,19,0
- dpos 3,18,0
- dpos 4,17,0
- dpos 5,17,0
- dpos 6,16,0
- dpos 7,16,0
- dpos 8,15,0
- dpos 9,15,0
- dpos 10,15,0
- dpos 11,14,0
- dpos 12,14,0
- dpos 13,14,0
- dpos 14,14,0
- dpos 15,14,0
- dpos 16,14,0
- dpos 17,14,0
- dpos 18,14,0
- dpos 19,14,0
- dpos 20,14,0
- dpos 21,15,0
- dpos 22,15,0
- dpos 23,15,0
- dpos 24,16,0
- dpos 25,16,0
- dpos 26,17,0
- dpos 27,17,0
- dpos 28,18,0
- dpos 29,19,0
- dpos 30,20,0
- dpos 31,21,0
- dpos 31,22,3
-
- dpos 7,31,0
- dpos 7,30,0
- dpos 7,29,0
- dpos 8,28,0
- dpos 8,27,0
- dpos 9,26,0
- dpos 9,25,0
- dpos 10,25,0
- dpos 11,24,0
- dpos 12,24,0
- dpos 13,23,0
- dpos 14,23,0
- dpos 15,23,0
- dpos 16,23,0
- dpos 17,23,0
- dpos 18,23,0
- dpos 19,24,0
- dpos 20,24,0
- dpos 21,25,0
- dpos 22,25,0
- dpos 22,26,0
- dpos 23,27,0
- dpos 23,28,0
- dpos 24,29,0
- dpos 24,30,0
- dpos 24,31,3
-
- dpos 0,18,0
- dpos 1,17,0
- dpos 2,16,0
- dpos 3,16,0
- dpos 4,15,0
- dpos 5,15,0
- dpos 6,14,0
- dpos 7,14,0
- dpos 8,13,0
- dpos 9,13,0
- dpos 10,13,0
- dpos 11,12,0
- dpos 12,12,0
- dpos 13,12,0
- dpos 14,12,0
- dpos 15,12,0
- dpos 16,12,0
- dpos 17,12,0
- dpos 18,12,0
- dpos 19,12,0
- dpos 20,12,0
- dpos 21,13,0
- dpos 22,13,0
- dpos 23,13,0
- dpos 24,14,0
- dpos 25,14,0
- dpos 26,15,0
- dpos 27,15,0
- dpos 28,16,0
- dpos 29,16,0
- dpos 30,17,0
- dpos 31,18,3
-
- dpos 5,31,0
- dpos 5,30,0
- dpos 5,29,0
- dpos 5,28,0
- dpos 6,28,0
- dpos 6,27,0
- dpos 6,26,0
- dpos 7,26,0
- dpos 7,25,0
- dpos 7,24,0
- dpos 8,24,0
- dpos 8,23,0
- dpos 9,23,0
- dpos 10,23,0
- dpos 9,22,0
- dpos 10,22,0
- dpos 11,22,0
- dpos 12,22,0
- dpos 12,21,0
- dpos 13,21,0
- dpos 14,21,0
- dpos 15,21,0
- dpos 16,21,0
- dpos 17,21,0
- dpos 18,21,0
- dpos 19,21,0
- dpos 19,22,0
- dpos 20,22,0
- dpos 21,22,0
- dpos 22,22,0
- dpos 21,23,0
- dpos 22,23,0
- dpos 23,23,0
- dpos 23,24,0
- dpos 24,24,0
- dpos 24,25,0
- dpos 24,26,0
- dpos 25,26,0
- dpos 25,27,0
- dpos 25,28,0
- dpos 26,28,0
- dpos 26,29,0
- dpos 26,30,0
- dpos 26,31,3
-
- dpos 0,16,0
- dpos 1,15,0
- dpos 2,14,0
- dpos 3,13,0
- dpos 4,13,0
- dpos 5,12,0
- dpos 6,12,0
- dpos 7,12,0
- dpos 8,11,0
- dpos 9,11,0
- dpos 10,11,0
- dpos 11,10,0
- dpos 12,10,0
- dpos 13,10,0
- dpos 14,10,0
- dpos 15,10,0
- dpos 16,10,0
- dpos 17,10,0
- dpos 18,10,0
- dpos 19,10,0
- dpos 20,10,0
- dpos 21,11,0
- dpos 22,11,0
- dpos 23,11,0
- dpos 24,12,0
- dpos 25,12,0
- dpos 26,12,0
- dpos 27,13,0
- dpos 28,13,0
- dpos 29,14,0
- dpos 30,15,0
- dpos 31,16,3
-
- dpos 3,31,0
- dpos 3,30,0
- dpos 3,29,0
- dpos 3,28,0
- dpos 4,27,0
- dpos 4,26,0
- dpos 5,25,0
- dpos 5,24,0
- dpos 6,23,0
- dpos 6,22,0
- dpos 7,22,0
- dpos 7,21,0
- dpos 8,21,0
- dpos 9,20,0
- dpos 10,20,0
- dpos 11,20,0
- dpos 12,19,0
- dpos 13,19,0
- dpos 14,19,0
- dpos 15,19,0
- dpos 16,19,0
- dpos 17,19,0
- dpos 18,19,0
- dpos 19,19,0
- dpos 20,20,0
- dpos 21,20,0
- dpos 22,20,0
- dpos 23,21,0
- dpos 24,21,0
- dpos 24,22,0
- dpos 25,22,0
- dpos 25,23,0
- dpos 26,24,0
- dpos 26,25,0
- dpos 27,26,0
- dpos 27,27,0
- dpos 28,28,0
- dpos 28,29,0
- dpos 28,30,0
- dpos 28,31,3
-
- dpos 0,14,0
- dpos 1,13,0
- dpos 2,12,0
- dpos 3,11,0
- dpos 4,11,0
- dpos 5,10,0
- dpos 6,10,0
- dpos 7,10,0
- dpos 8,9,0
- dpos 9,9,0
- dpos 10,9,0
- dpos 11,8,0
- dpos 12,8,0
- dpos 13,8,0
- dpos 14,8,0
- dpos 15,8,0
- dpos 16,8,0
- dpos 17,8,0
- dpos 18,8,0
- dpos 19,8,0
- dpos 20,8,0
- dpos 21,9,0
- dpos 22,9,0
- dpos 23,9,0
- dpos 24,10,0
- dpos 25,10,0
- dpos 26,10,0
- dpos 27,11,0
- dpos 28,11,0
- dpos 29,12,0
- dpos 30,13,0
- dpos 31,14,3
-
- dpos 1,31,0
- dpos 1,30,0
- dpos 1,29,0
- dpos 1,28,0
- dpos 1,27,0
- dpos 2,27,0
- dpos 2,26,0
- dpos 2,25,0
- dpos 2,24,0
- dpos 3,25,0
- dpos 3,24,0
- dpos 3,23,0
- dpos 3,22,0
- dpos 4,23,0
- dpos 4,22,0
- dpos 4,21,0
- dpos 5,21,0
- dpos 5,20,0
- dpos 6,20,0
- dpos 6,19,0
- dpos 7,19,0
- dpos 8,19,0
- dpos 8,18,0
- dpos 9,18,0
- dpos 10,18,0
- dpos 11,18,0
- dpos 11,17,0
- dpos 12,17,0
- dpos 13,17,0
- dpos 14,17,0
- dpos 15,17,0
- dpos 16,17,0
- dpos 17,17,0
- dpos 18,17,0
- dpos 19,17,0
- dpos 20,17,0
- dpos 20,18,0
- dpos 21,18,0
- dpos 22,18,0
- dpos 23,18,0
- dpos 23,19,0
- dpos 24,19,0
- dpos 25,19,0
- dpos 25,20,0
- dpos 26,20,0
- dpos 26,21,0
- dpos 27,21,0
- dpos 27,22,0
- dpos 27,23,0
- dpos 28,22,0
- dpos 28,23,0
- dpos 28,24,0
- dpos 28,25,0
- dpos 29,24,0
- dpos 29,25,0
- dpos 29,26,0
- dpos 29,27,0
- dpos 30,27,0
- dpos 30,28,0
- dpos 30,29,0
- dpos 30,30,0
- dpos 30,31,3
-
- dpos 0,11,0
- dpos 1,10,0
- dpos 2,10,0
- dpos 3,9,0
- dpos 4,9,0
- dpos 5,8,0
- dpos 6,8,0
- dpos 7,8,0
- dpos 8,7,0
- dpos 9,7,0
- dpos 10,7,0
- dpos 11,6,0
- dpos 12,6,0
- dpos 13,6,0
- dpos 14,6,0
- dpos 15,6,0
- dpos 16,6,0
- dpos 17,6,0
- dpos 18,6,0
- dpos 19,6,0
- dpos 20,6,0
- dpos 21,7,0
- dpos 22,7,0
- dpos 23,7,0
- dpos 24,8,0
- dpos 25,8,0
- dpos 26,8,0
- dpos 27,9,0
- dpos 28,9,0
- dpos 29,10,0
- dpos 30,10,0
- dpos 31,11,3
-
- dpos 0,26,0
- dpos 0,25,0
- dpos 0,24,0
- dpos 0,23,0
- dpos 1,23,0
- dpos 1,22,0
- dpos 1,21,0
- dpos 2,21,0
- dpos 2,20,0
- dpos 3,20,0
- dpos 3,19,0
- dpos 4,19,0
- dpos 4,18,0
- dpos 5,18,0
- dpos 6,17,0
- dpos 7,17,0
- dpos 8,16,0
- dpos 9,16,0
- dpos 10,16,0
- dpos 11,15,0
- dpos 12,15,0
- dpos 13,15,0
- dpos 14,15,0
- dpos 15,15,0
- dpos 16,15,0
- dpos 17,15,0
- dpos 18,15,0
- dpos 19,15,0
- dpos 20,15,0
- dpos 21,16,0
- dpos 22,16,0
- dpos 23,16,0
- dpos 24,17,0
- dpos 25,17,0
- dpos 26,18,0
- dpos 27,18,0
- dpos 27,19,0
- dpos 28,19,0
- dpos 28,20,0
- dpos 29,20,0
- dpos 29,21,0
- dpos 30,21,0
- dpos 30,22,0
- dpos 30,23,0
- dpos 31,23,0
- dpos 31,24,0
- dpos 31,25,0
- dpos 31,26,3
-
- dpos 0,7,0
- dpos 1,7,0
- dpos 2,7,0
- dpos 3,6,0
- dpos 4,6,0
- dpos 5,6,0
- dpos 6,5,0
- dpos 7,5,0
- dpos 8,5,0
- dpos 9,5,0
- dpos 10,4,0
- dpos 11,4,0
- dpos 12,4,0
- dpos 13,4,0
- dpos 14,4,0
- dpos 15,4,0
- dpos 16,4,0
- dpos 17,4,0
- dpos 18,4,0
- dpos 19,4,0
- dpos 20,4,0
- dpos 21,4,0
- dpos 22,5,0
- dpos 23,5,0
- dpos 24,5,0
- dpos 25,5,0
- dpos 26,6,0
- dpos 27,6,0
- dpos 28,6,0
- dpos 29,7,0
- dpos 30,7,0
- dpos 31,7,3
-
- dpos 0,20,0
- dpos 0,19,0
- dpos 1,19,0
- dpos 1,18,0
- dpos 2,18,0
- dpos 2,17,0
- dpos 3,17,0
- dpos 4,16,0
- dpos 5,16,0
- dpos 6,15,0
- dpos 7,15,0
- dpos 8,14,0
- dpos 9,14,0
- dpos 10,14,0
- dpos 11,13,0
- dpos 12,13,0
- dpos 13,13,0
- dpos 14,13,0
- dpos 15,13,0
- dpos 16,13,0
- dpos 17,13,0
- dpos 18,13,0
- dpos 19,13,0
- dpos 20,13,0
- dpos 21,14,0
- dpos 22,14,0
- dpos 23,14,0
- dpos 24,15,0
- dpos 25,15,0
- dpos 26,16,0
- dpos 27,16,0
- dpos 28,17,0
- dpos 29,17,0
- dpos 29,18,0
- dpos 30,18,0
- dpos 30,19,0
- dpos 31,19,0
- dpos 31,20,3
-
- dpos 0,5,0
- dpos 1,5,0
- dpos 2,5,0
- dpos 3,4,0
- dpos 4,4,0
- dpos 5,4,0
- dpos 6,3,0
- dpos 7,3,0
- dpos 8,3,0
- dpos 9,3,0
- dpos 10,2,0
- dpos 11,2,0
- dpos 12,2,0
- dpos 13,2,0
- dpos 14,2,0
- dpos 15,2,0
- dpos 16,2,0
- dpos 17,2,0
- dpos 18,2,0
- dpos 19,2,0
- dpos 20,2,0
- dpos 21,2,0
- dpos 22,3,0
- dpos 23,3,0
- dpos 24,3,0
- dpos 25,3,0
- dpos 26,4,0
- dpos 27,4,0
- dpos 28,4,0
- dpos 29,5,0
- dpos 30,5,0
- dpos 31,5,3
-
- dpos 0,17,0
- dpos 1,16,0
- dpos 2,15,0
- dpos 3,15,0
- dpos 3,14,0
- dpos 4,14,0
- dpos 5,14,0
- dpos 5,13,0
- dpos 6,13,0
- dpos 7,13,0
- dpos 8,12,0
- dpos 9,12,0
- dpos 10,12,0
- dpos 11,11,0
- dpos 12,11,0
- dpos 13,11,0
- dpos 14,11,0
- dpos 15,11,0
- dpos 16,11,0
- dpos 17,11,0
- dpos 18,11,0
- dpos 19,11,0
- dpos 20,11,0
- dpos 21,12,0
- dpos 22,12,0
- dpos 23,12,0
- dpos 24,13,0
- dpos 25,13,0
- dpos 26,13,0
- dpos 26,14,0
- dpos 27,14,0
- dpos 28,14,0
- dpos 28,15,0
- dpos 29,15,0
- dpos 30,16,0
- dpos 31,17,3
-
- dpos 0,3,0
- dpos 1,2,0
- dpos 2,2,0
- dpos 3,2,0
- dpos 4,2,0
- dpos 5,1,0
- dpos 6,1,0
- dpos 7,1,0
- dpos 8,1,0
- dpos 9,0,0
- dpos 10,0,0
- dpos 11,0,0
- dpos 12,0,0
- dpos 13,0,0
- dpos 14,0,0
- dpos 15,0,0
- dpos 16,0,0
- dpos 17,0,0
- dpos 18,0,0
- dpos 19,0,0
- dpos 20,0,0
- dpos 21,0,0
- dpos 22,0,0
- dpos 23,1,0
- dpos 24,1,0
- dpos 25,1,0
- dpos 26,1,0
- dpos 27,2,0
- dpos 28,2,0
- dpos 29,2,0
- dpos 30,2,0
- dpos 31,3,3
-
- dpos 0,15,0
- dpos 1,14,0
- dpos 2,13,0
- dpos 3,12,0
- dpos 4,12,0
- dpos 5,11,0
- dpos 6,11,0
- dpos 7,11,0
- dpos 8,10,0
- dpos 9,10,0
- dpos 10,10,0
- dpos 11,9,0
- dpos 12,9,0
- dpos 13,9,0
- dpos 14,9,0
- dpos 15,9,0
- dpos 16,9,0
- dpos 17,9,0
- dpos 18,9,0
- dpos 19,9,0
- dpos 20,9,0
- dpos 21,10,0
- dpos 22,10,0
- dpos 23,10,0
- dpos 24,11,0
- dpos 25,11,0
- dpos 26,11,0
- dpos 27,12,0
- dpos 28,12,0
- dpos 29,13,0
- dpos 30,14,0
- dpos 31,15,3
-
- dpos 0,0,0
- dpos 1,0,0
- dpos 2,0,0
- dpos 29,0,0
- dpos 30,0,0
- dpos 31,0,3
-
-
-
- dpos 0,13,0
- dpos 0,12,0
- dpos 1,12,0
- dpos 1,11,0
- dpos 2,11,0
- dpos 3,10,0
- dpos 4,10,0
- dpos 5,9,0
- dpos 6,9,0
- dpos 7,9,0
- dpos 8,8,0
- dpos 9,8,0
- dpos 10,8,0
- dpos 11,7,0
- dpos 12,7,0
- dpos 13,7,0
- dpos 14,7,0
- dpos 15,7,0
- dpos 16,7,0
- dpos 17,7,0
- dpos 18,7,0
- dpos 19,7,0
- dpos 20,7,0
- dpos 21,8,0
- dpos 22,8,0
- dpos 23,8,0
- dpos 24,9,0
- dpos 25,9,0
- dpos 26,9,0
- dpos 27,10,0
- dpos 28,10,0
- dpos 29,11,0
- dpos 30,11,0
- dpos 30,12,0
- dpos 31,12,0
- dpos 31,13,3
-
- dpos 0,10,0
- dpos 0,9,0
- dpos 1,9,0
- dpos 2,9,0
- dpos 3,9,0
- dpos 0,8,0
- dpos 1,8,0
- dpos 2,8,0
- dpos 3,8,0
- dpos 4,8,0
- dpos 3,7,0
- dpos 4,7,0
- dpos 5,7,0
- dpos 6,7,0
- dpos 7,7,0
- dpos 6,6,0
- dpos 7,6,0
- dpos 8,6,0
- dpos 9,6,0
- dpos 10,6,0
- dpos 10,5,0
- dpos 11,5,0
- dpos 12,5,0
- dpos 13,5,0
- dpos 14,5,0
- dpos 15,5,0
- dpos 16,5,0
- dpos 17,5,0
- dpos 18,5,0
- dpos 19,5,0
- dpos 20,5,0
- dpos 21,5,0
- dpos 21,6,0
- dpos 22,6,0
- dpos 23,6,0
- dpos 24,6,0
- dpos 25,6,0
- dpos 24,7,0
- dpos 25,7,0
- dpos 26,7,0
- dpos 27,7,0
- dpos 28,7,0
- dpos 27,8,0
- dpos 28,8,0
- dpos 29,8,0
- dpos 30,8,0
- dpos 31,8,0
- dpos 29,9,0
- dpos 30,9,0
- dpos 31,9,0
- dpos 31,10,3
-
- dpos 0,6,0
- dpos 1,6,0
- dpos 2,6,0
- dpos 3,5,0
- dpos 4,5,0
- dpos 5,5,0
- dpos 6,4,0
- dpos 7,4,0
- dpos 8,4,0
- dpos 9,4,0
- dpos 10,3,0
- dpos 11,3,0
- dpos 12,3,0
- dpos 13,3,0
- dpos 14,3,0
- dpos 15,3,0
- dpos 16,3,0
- dpos 17,3,0
- dpos 18,3,0
- dpos 19,3,0
- dpos 20,3,0
- dpos 21,3,0
- dpos 22,4,0
- dpos 23,4,0
- dpos 24,4,0
- dpos 25,4,0
- dpos 26,5,0
- dpos 27,5,0
- dpos 28,5,0
- dpos 29,6,0
- dpos 30,6,0
- dpos 31,6,3
-
- dpos 0,4,0
- dpos 1,4,0
- dpos 2,4,0
- dpos 1,3,0
- dpos 2,3,0
- dpos 3,3,0
- dpos 4,3,0
- dpos 5,3,0
- dpos 5,2,0
- dpos 6,2,0
- dpos 7,2,0
- dpos 8,2,0
- dpos 9,2,0
- dpos 9,1,0
- dpos 10,1,0
- dpos 11,1,0
- dpos 12,1,0
- dpos 13,1,0
- dpos 14,1,0
- dpos 15,1,0
- dpos 16,1,0
- dpos 17,1,0
- dpos 18,1,0
- dpos 19,1,0
- dpos 20,1,0
- dpos 21,1,0
- dpos 22,1,0
- dpos 22,2,0
- dpos 23,2,0
- dpos 24,2,0
- dpos 25,2,0
- dpos 26,2,0
- dpos 26,3,0
- dpos 27,3,0
- dpos 28,3,0
- dpos 29,3,0
- dpos 30,3,0
- dpos 29,4,0
- dpos 30,4,0
- dpos 31,4,3
-
- dpos 0,2,0
- dpos 0,1,0
- dpos 1,1,0
- dpos 2,1,0
- dpos 3,1,0
- dpos 4,1,0
- dpos 3,0,0
- dpos 4,0,0
- dpos 5,0,0
- dpos 6,0,0
- dpos 7,0,0
- dpos 8,0,0
- dpos 23,0,0
- dpos 24,0,0
- dpos 25,0,0
- dpos 26,0,0
- dpos 27,0,0
- dpos 28,0,0
- dpos 27,1,0
- dpos 28,1,0
- dpos 29,1,0
- dpos 30,1,0
- dpos 31,1,0
- dpos 31,2,3
-
-
- .dc.l -1 * 終端フラグ
-
-
- appear:
- .ds.w 1
-
-